/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package carreras.order.test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

/**
 *
 * @author Fanky10 <fanky10@gmail.com>
 */
public class Main {
    public Main(){
       Personas pV = new Personas();
       pV.add(new Persona("facundo", 10));
       pV.add(new Persona("facundo", 12));
       pV.add(new Persona("facundo", 12));
       pV.add(new Persona("facundo", 10));
       pV.add(new Persona("facundo", 10));
       pV.add(new Persona("facundo", 11));
       pV.reorder();
       System.out.println("Personas reordered: ");
       for(Persona p: pV){
           System.out.println(p);
       }
    }
    public static void main(String args[]){
        new Main();
    }
    private class Persona {
        private String nombre;
        private int edad;

        public Persona(String nombre, int edad) {
            this.nombre = nombre;
            this.edad = edad;
        }
        public String toString(){
            return nombre + " - " + edad;
        }
        public int getEdad() {
            return edad;
        }

        public void setEdad(int edad) {
            this.edad = edad;
        }

        public String getNombre() {
            return nombre;
        }

        public void setNombre(String nombre) {
            this.nombre = nombre;
        }
        
    }
    private class Personas extends ArrayList<Persona>{
        public void reorder(){
            Collections.sort(this, new Comparator<Persona>(){

                @Override
                public int compare(Persona t, Persona t1) {
                    String n1 = t.getNombre();
                    String n2 = t1.getNombre();
                    int sComp = n1.compareToIgnoreCase(n2);

                    if (sComp != 0) {
                       return sComp;
                    } else {
                       Integer x1 = t.getEdad();
                       Integer x2 = t1.getEdad();
                       return x1.compareTo(x2);
                    }

                }
            
            });
        }
    }
}
